#include<linux/module.h>
#include<linux/init.h>
MODULE_LICENSE("GPL");
static int __init module_put_init(void);
static void __exit module_put_exit(void);

int __init module_put_init(void)
{
	const char *name = "test_module";//定义待查找的模块名为"test_module"
	struct module *fmodule = find_module(name);

	if(fmodule != NULL)
	{
		/*调用module_put()函数之前,输出模块test_module的引用计数*/
		printk("before calling module_put,\n");
		printk("refs of %s is: %d\n",name,module_refcount(fmodule));

		module_put(fmodule);
		/*调用module_put()函数之后,输出模块test_module的引用计数*/
		printk("after calling module_put,\n");
		printk("refs of %s is: %d\n",name,module_refcount(fmodule));
	}else{
		printk("find %s failed!",name);	
	}
	return 0;
}
void __exit module_put_exit(void)
{
	printk("module exit ok!\n");
}
module_init(module_put_init);
module_exit(module_put_exit);
	
